(define (make-monitored f)
  (let ((count 0))
   (define (add-count) (begin (set! count (+ count 1)) count))
   (define (mf option)
     (cond ((eq? 'how-many-calls? option) count)
           ((eq? 'reset-count option) (begin (set! count 0) count))
           (else (begin (set! count (+ count 1)) count (f option)))))
   mf))

(define test (make-monitored display)) 

(test 1)
(test 2)
(test 3)
(test 4)
(test 'how-many-calls?)
